package com.bed.lovewithpatientbed.service;

import com.bed.lovewithpatientbed.common.BedPutSearchParams;
import java.util.List;

import com.bed.lovewithpatientbed.common.bean.LayUiPageBean;
import com.bed.lovewithpatientbed.pojo.*;


/**
 * @ClassName BedService.java
 * @author sunningsheng
 * @version 1.0.0
 * @Description 床位管理Service接口
 * @createTime
 */
public interface BedService {

    long countRow();

    /**
     * @title bedPut
     * @description 床位投放的Service
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    void bedPut(BedPut bedPut);

    /**
     * @title bedAdd
     * @description 床位新增
     * @author admin
     * @updateTime
     * @throws
     */
    void bedAdd(Bed bed);

    /**
     * @title bedUpdate
     * @description 床位信息的修改
     * @author admin
     * @updateTime
     * @throws
     */
    void bedUpdate(BedPut bedPut);

    /**
     * @title bedSelectBybid
     * @description 根据ID查询床位
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    BedPut bedSelectBybid(Integer bedPutId);

    /**
     * @title bedSelect
     * @description 根据固定条件筛选床位
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    List<BedPut> bedSelect(PageBean pageBean,BedPut bedPut);

    /**
     * @title bedDeleteByPrimary
     * @description 删除床位信息(将状态ID设为2)
     * @author sunningsheng
     * @updateTime   
     * @throws 
     */
    void bedDeleteByPrimary(Integer[] bedPutIds);

    /**
     * @title getCount
     * @description 已投放的床位数
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    long getBedPutCount();

    /**
     * @title bedSelectWithLimit
     * @description layui分页筛选已投放床位
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    List<BedPut> bedSelectWithLimit(LayUiPageBean pageBean, BedPutSearchParams bedPut);

    /**
     * @title selectProvince
     * @description 获取省份信息
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    List<Address> selectProvince();

    /**
     * @title selectCity
     * @description 根据省份获取城市
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    List<Address> selectCity(String province);

    /**
     * @title selectDistrict
     * @description 根据城市获取区
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    List<Address> selectDistrict(String city);

    /**
     * @title selectHospital
     * @description 根据区获取医院
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    List<Hospital> selectHospital(String district);

    /**
         * @title 根据医院科室信息查询床的使用情况
         * @description
         * @author yg
         * @updateTime
         * @throws
         */

    List<BedPut> selectByHospitalIdAndDeptId(Integer hospitalid,Integer deptid);

    /**
     * @title closeBed
     * @description 将“待机”的床位状态修改为“关机”
     * @author sunningsheng
     * @updateTime
     * @throws
     */
    void closeBed(Integer bedPut);
}
